package lv.clientedisqueria.model.musico;

import java.util.Collections;
import java.util.Comparator;
import java.util.List;

import lv.clientedisqueria.model.DisqueriaTablaModelo;
import lv.mensajeriadisqueria.idomain.IMusico;

@SuppressWarnings("serial")
public class MusicoTablaModel extends DisqueriaTablaModelo<IMusico>{

	private static String[] columns = new String[]{"Nombre", "Nacionalidad", "Vivo"};
	
	public MusicoTablaModel(final MusicoModel musicoModel) {
		super(musicoModel, columns);
	}

	@Override
	protected void modificarEntity(IMusico oldMusico, IMusico newMusico) {
		oldMusico.setNombre(newMusico.getNombre());
		oldMusico.setNacionalidad(newMusico.getNacionalidad());
		oldMusico.setVivo(newMusico.getVivo());
	}

	@Override
	protected void ordenar(List<IMusico> lista) {
		Collections.sort(getDomains(), new Comparator<IMusico>() {
			@Override
			public int compare(IMusico musico1, IMusico musico2) {
				return musico1.getNombre().compareToIgnoreCase(musico2.getNombre());
			}
		});
	}

	@Override
	protected Object valor(int rowIndex, int columnIndex) {
		if(columnIndex == 0) {
			return getDomains().get(rowIndex).getNombre();
		} else if(columnIndex == 1) {
			return getDomains().get(rowIndex).getNacionalidad();
		} else if(columnIndex == 2) {
			if(getDomains().get(rowIndex).getVivo())
				return "S";
			else
				return "N";
		}
		return null;
	}

	@Override
	public void actualizarTabla() {
		if (getSeleccionado().getIdMusico() == null) {
			remover();
		}		
	}

}